package com.zb.order.service;

import com.zb.entity.AccounLoginInfo;
import com.zb.result.PageUtil;
import com.zb.vo.*;

import java.util.List;
import java.util.Map;

/**
 * @Author WEN
 * @Date 2023/10/26 0026
 **/
public interface ConWorkSpareService {
    /**
     * 保存或修改工单备件
     * @param loginInfo
     * @param workSpareVo
     */
    void save(AccounLoginInfo loginInfo, WorkSpareVo workSpareVo);

    /**
     * 获取工单备件列表
     * @param custAccId 商家ID
     * @param selectVo 搜索条件
     * @return
     */
    Map<String, Object> getList(Long custAccId, WorkSpareSelectVo selectVo);

    /**
     * 根据工单ID获取工单详情的工单备件列表
     * @param workId 工单ID
     * @param pageUtil 分页信息
     * @return
     */
    Map<String, Object> getOrderDetailWorkSpareList(Long workId, PageUtil pageUtil);
    /**
     * 根据工单ID获取工单详情的工单备件列表
     * @param workId 工单ID
     * @return
     */
    List<OrderDetailWorkSpareListVo> getOrderDetailWorkSpareList(Long workId);

    /**
     * 根据工单备件ID获取工单备件详情
     * @param id
     * @return
     */
    WorkSpareDetailVo getDetail(Long id);

    /**
     * 根据工单备件ID获取工单备件详情的物料信息
     * @param workSpareId 工单备件ID
     * @return
     */
    List<WorkSpareDetailMaterialVo> getOrderSpareMaterial(Long workSpareId);

    /**
     * 审核工单备件
     * @param loginInfo
     * @param workSpareCheckVo
     */
    void checkOrderSpare(AccounLoginInfo loginInfo, WorkSpareCheckVo workSpareCheckVo);

    /**
     * 获取服务商详情之工单配件列表
     * @param networkId 服务商ID
     * @param pageUtil 分页对象
     * @return
     */
    Map<String, Object> getNetworkDetailOrderSpareList(Long networkId, PageUtil pageUtil);

    /**
     * 获取商家详情之工单配件列表
     * @param factoryId 品牌商家ID
     * @param pageUtil 分页对象
     * @return
     */
    Map<String, Object> getFactoryDetailOrderSpareList(Long factoryId, PageUtil pageUtil);
}
